Amazon Lumberyard クイックスタート #6 ゲーム・スクリプティング
Amazon Lumberyard Quick Start
先日発表されたばかりの、 Amazon 製のゲーム開発ツール Amazon Lumberyard (以下、Lumberyard)。
本ブログでは、Amazon GameDev Tutorials で公開されている Quick Start Reference に沿って、Lumberyard に触れております。
- Level の作成
- カメラの位置の調整
- Lumberyard オブジェクト
- Terrain の作成
- 光源の配置
- ゲーム・スクリプティング (今回)
今回は最後、「ゲーム・スクリプティング」です。
ゲーム・スクリプティング
Lumberyard には「Flow Graph」という、ゲームのスクリプトをビジュアルで書くことができるツールがあります。ゲームのプレイ上のアクションとイベントの結びつけをノードベースで作ることができます。
Quick Start では「キャラクターがある領域へ出入りしたら、前回作成したライトのON/OFFを切り替える」という制御を作ります。
トリガーとなる領域の作成
まず、イベントのトリガーとなる領域を作成しましょう。
「Rollup Bar」の「Objects」タブから「Entity」をクリックします。一覧の中にある Triggers/ProximityTrigger
を「Perspective Viewport」にドラッグアンドドロップします。
「ProximityTrigger」は、トリガーとすることができる領域です。領域の大きさを変更するには「Entity Properties」の中にある「DimX」及び「DimY」です。
今回は下記の設定にします。
- DimX :
14
- DimY :
14
次に、スクリプトを追加しましょう。ProximityTrigger オブジェクトを右クリックすると表示される「Create Flow Graph」を選択します。
「Flow Graph」の名前を決めます。今回は「MyFirstScript」とします。
作成したら、Flow Graph の編集を行いましょう。ツールバーの左から8番目のアイコンをクリックします。
「Flow Graph Editor」という画面が開きます。次のような機能があります。
- Main menu : Flow Graph ファイルの管理
- Editor toolbar : 編集の戻る/進む、ステップ、デバッグのトグル・クリアなど
- Component search bar : 利用可能なコンポーネントの検索
- Canvas view : スクリプトの構築
- Component list : イベント作成可能なコンポーネントの一覧
- Flow Graph file tree : Level で利用可能なFlow Graph ファイルへのアクセス
- Node properties : Node のプロパティの設定
- Canvas node search : Canvas view にある Node の検索
- Canvas node search results : Node の検索結果の一覧
- Debug Breakpoints : デバッグ時のブレークポイントの管理
左下のファイルツリーでは Level に存在する Flow Graph を一覧できます。今回作成したのは Level
Flowgraphs/Entities/MyFirstScript
を展開した中にある ProximityTrigger1
です。これを選択します。
「Canvas view」で、スクリプトの構築を行います。まずはの ProximityTrigger オブジェクトの Node を追加します。「Perspective Viewport」で先ほど追加した ProximityTrigger オブジェクトが選択されている状態で「Canvas view」を右クリックし「Add Selected Entity」を選択します。
entity:ProximityTrigger
という Node が追加されます。
次に、光源のオブジェクトの Node を追加します。「Canvas view」でライトの光源を選択した状態で「Canvas view」を右クリックし「Add Selected Entity」を選択します。
今度は entity:Light
という Node が追加されます。
Node は、入力と出力のポートを持っています。これをつなぎ合わせることで「何かが出力されたら何かに入力する」というスクリプトを作ることができます。
まず「領域に入ったらライトを点ける」というスクリプトを作ります。entity:ProximityTrigger
にある Enter
は「Node のオブジェクトに侵入したとき」というイベントの出力ポートです。ここから entity:Light
の Enable
にドラッグアンドドロップします。Enable
は、有効化するという入力ポートです。
次に、「領域から出たらライトを消す」というスクリプトを作ります。entity:ProximityTrigger
にある Leave
を entity:Light
の Disable
までドラッグアンドドロップします。
これで完了です!
動作を確認する
ゲームモードに切り替え、動作を確認してみましょう。領域に入ったらライトが点き、領域から出たらライトが消えます。
まとめ
以上で Quick Start は終わりです。Lumberyard の面白いところをつまみ食いしていくような感じでしたが、操作がとにかく簡単 という印象を受けました。ぜひ遊んでみてください!
引き続き、いろいろ試してブログでご紹介できればと思います。